package deepr.handler;

import deepr.core.DisposeContext;
import deepr.entity.DeeprInfoResponse;
import deepr.entity.DeeprListResponse;
import deepr.entity.DeeprRequest;
import deepr.entity.Response;
import deepr.exception.DeeprException;

public interface SchemaHandler {

  String getTableName(DisposeContext ctx, String name) throws Exception;

  void beforeListQuery(DisposeContext ctx, DeeprRequest deeprRequest) throws Exception;

  void beforeInfoQuery(DisposeContext ctx, DeeprRequest deeprRequest) throws Exception;

  <T> void afterListQuery(DisposeContext ctx, DeeprListResponse<T> response) throws Exception;

  <T> void afterInfoQuery(DisposeContext ctx, DeeprInfoResponse<T> response) throws Exception;


}
